name="select_JCK18LBm" # 自定义组件ID

readonly name

old_name="" # 旧的自定义组件ID，无需填写，自动生成
temp="_"

echo $name

Folder_A="./src/components/"
for file_a in ${Folder_A}/*; do
  temp_file=`basename $file_a`
  if [[ $temp_file =~ $temp ]]; then
    old_name=$temp_file
  fi
done

echo $old_name

# 判断当前电脑是什么操作系统
a=`uname  -a`
b="Darwin"
sys=``

if [[ $a =~ $b ]];then
    sys="''"
fi

echo $sys

# 用正则表达式匹配package.json中打包命令的旧的自定义组件英文名称old_name，
# 然后替换为新的自定义组件ID
sed -i $sys "s/vue-cli-service build --target lib --name $old_name src\/components\/$old_name\/lib.js/vue-cli-service build --target lib --name $name src\/components\/$name\/lib.js/" ./package.json

# 修改自定义组件的文件夹名称
mv ./src/components/$old_name ./src/components/$name

# 修改自定义组件的预览态文件名称
mv ./src/components/$name/$old_name-generate.vue ./src/components/$name/$name-generate.vue

# 修改自定义组件的设计态文件名称
mv ./src/components/$name/$old_name-widget.vue ./src/components/$name/$name-widget.vue

# 修改自定义组件的预览态组件名称
sed -i $sys "s/$old_name-generate/$name-generate/" ./src/components/$name/$name-generate.vue

# 修改自定义组件的设计态组件名称
sed -i $sys "s/$old_name-widget/$name-widget/" ./src/components/$name/$name-widget.vue

# 修改lib.js文件中的名称
sed -i $sys "s/default as ${old_name}Widget \} from '.\/${old_name}-widget'/default as ${name}Widget \} from '.\/$name-widget\'/" ./src/components/$name/lib.js

sed -i $sys "s/default as ${old_name}Generate \} from '.\/${old_name}-generate'/default as ${name}Generate \} from '.\/$name-generate\'/" ./src/components/$name/lib.js

# 修改config.js中jsonschema的组件ID
sed -i $sys "s/$old_name/$name/" ./src/components/$name/config.js

# 替换后打包
npm run build:custom

# 删除dist文件夹下所有文件，否则每一次执行dist目录下都会产生一个css和一个js文件
Folder_B="./public/dist/"
for file_a in ${Folder_B}/*; do
  rm -r $file_a
done

# 将生成的js复制到public下
cp ./dist/$name.umd.min.js ./public/dist/$name.umd.min.js

